AV data are binary data read out from storage media like CD-ROM, VCD, S-VCD, DVD or BD or received through a transmission channel, which contain segments destined for a set of one or more component decoders, like Audio, Video, or Sub-picture. In an AV playback device, data are arriving from the source (storage media or transmission channel) at a first data rate which may be time-varying, near-constant or constant-in-sections; they are typically fed to a buffer memory in order to compensate for the different instantaneous or short-term data rates of the data source and the data destination (the component decoders).
In case of optical media readout, the buffer memory is sometimes called track buffer or mechanical buffer; here it also serves to bridge those time intervals when the incoming data stream is interrupted. Such interruption happens whenever the optical pickup is being sent to a different location on the media to jump to a different target address. It also happens, in the form of being sent back a few tracks, as part of buffer control in cases of low data consumption, e.g. when decoding low-activity passages of video and/or audio signal.
Conventionally, data are organised in sectors of often constant length, and sectors contain pieces of payload. Very commonly, the payload of each sector is implicitly guaranteed to be destined to one component decoder only.
In many known AV decoders, data segments are re-copied from the track buffer into individual decoder bit buffers associated with the component decoders. Conceptually, the task of delivering each data segment to the component detector it is destined for is a demultiplexing task. In state of the art devices, sectors are read into memory and then the decoder payload of the sectors is copied to the appropriate decoder bit buffers. From each of the decoder bit buffers, the associated decoder receives its input, and will often copy the data in turn to an internal working memory used during the decoding proper.
EP 0917147 A describes a method and apparatus for improved controlling of a track buffer, where an input data stream is written to a data buffer and is controlled in such a way that at least one output data stream derived from the input data stream is forwarded to an associated data decoder by means of a chained list generated by a software demultiplexer. The track buffer TB and the decoder bit buffers are mapped into the same physical memory, and the component decoders directly process the data that were initially written to the track buffer, using a chained list technique. In this way re-copying data from the track buffer TB into the decoder bit buffers can be avoided.
The known method and apparatus can be seen to have the disadvantage that although they avoid copy operations from track buffer to decoder bit buffers, still a copy operation has to be performed when data are accepted from a decoder bit buffer into a decoder internal working memory which prior art component decoders require. Decoder internal working memory is necessary because efficient compression algorithms employ reference data that are derived from previously processed data, like pieces of previously decoded signal or of a predicted signal derived therefrom. Such reference data are typically held in the decoder internal memory, and prior art component decoders expect this memory at addresses which either are fixed or can only be changed occasionally as part of a decoder setup procedure.
First reading data into memory and later on copying the same data into dedicated decoder memory areas summarises into a big required memory access bandwidth and hence instrument hardware cost. A problem to be solved by the invention hence is to improve the memory management to that respect.